package top.byfree.jbyan.saber.bean.pojo

import org.ktorm.entity.Entity
import top.byfree.jbyan.saber.bean.vo.UserVo
import java.time.LocalDateTime

/**
 * 用户实体
 *
 * @author jbyan
 * @since 20/3/2024
 */
interface User : Entity<User> {

    companion object : Entity.Factory<User>()

    /* 用户编号 */
    var userId: String

    /* 头像 */
    var avatar: String

    /* 用户名称 */
    var username: String

    /* 用户昵称 */
    var nickname: String

    /* 用户密码 */
    var password: String

    /* 用户签名 */
    var sign: String

    /* 邮箱 */
    var email: String

    /* 状态 */
    var status: Int

    /* 逻辑删除 */
    var isDelete: Int

    /* 创建日期 */
    var gmtCreate: LocalDateTime

    /* 修改日期 */
    var gmtModify: LocalDateTime

    /* 创建人 */
    var createBy: String

    /* 修改人 */
    var modifyBy: String

    fun toVo() = UserVo(
        userId,
        avatar,
        username,
        nickname,
        sign,
        email,
        status,
        gmtCreate,
        gmtModify,
        createBy,
        modifyBy
    )
}